Apache Ant বিল্ড সিস্টেমে <property>
টাস্ক একটি অত্যন্ত গুরুত্বপূর্ণ টাস্ক, যা প্রপার্টি ডিফাইন এবং ব্যবহারের জন্য ব্যবহৃত হয়। প্রপার্টি (Property) হল একটি কাস্টম ভ্যালু যা বিল্ড স্ক্রিপ্টে ব্যবহৃত হতে পারে, এবং এটি স্ক্রিপ্টের বিভিন্ন অংশে পুনরায় ব্যবহার করা যায়। প্রপার্টি সাধারণত ভ্যালু সেট করার মাধ্যমে বিল্ড কনফিগারেশন এবং ডায়নামিক পাথসমূহ বা অন্যান্য ভ্যালু পরিচালনা করতে ব্যবহৃত হয়।
<property>
টাস্কের মাধ্যমে আপনি বিল্ড স্ক্রিপ্টে প্রপার্টি ডিফাইন করতে পারেন এবং সেটি স্ক্রিপ্টের অন্য টাস্ক বা অংশে ব্যবহার করতে পারেন। এটি অ্যান্ট বিল্ড স্ক্রিপ্টে ভ্যালু বা কনফিগারেশন নির্ধারণ এবং তাদেরকে একটি নির্দিষ্ট জায়গায় ব্যবহার করার সুবিধা দেয়।
প্রপার্টি টাস্কের মাধ্যমে একটি প্রপার্টি ডিফাইন করা হয়, যা পরে স্ক্রিপ্টের বিভিন্ন জায়গায় ব্যবহার করা যাবে।
Syntax:
<property name="property_name" value="property_value"/>
এখানে:
name
: প্রপার্টির নাম যা আপনি সেট করতে চান।value
: প্রপার্টির মান যা আপনি নির্ধারণ করবেন।একবার প্রপার্টি ডিফাইন করলে, আপনি এটিকে স্ক্রিপ্টের অন্যান্য জায়গায় ব্যবহার করতে পারেন। প্রপার্টি ব্যবহার করতে, আপনি ${}
সাইন ব্যবহার করবেন।
Syntax:
<echo message="The value of property is ${property_name}"/>
এখানে:
${property_name}
দ্বারা ডিফাইন করা প্রপার্টির মান রেফার করা হয়েছে।এখানে একটি সহজ উদাহরণ দেয়া হলো যেখানে একটি প্রপার্টি ডিফাইন করা হয়েছে এবং পরে সেটি একটি <echo>
টাস্কে ব্যবহার করা হয়েছে।
<project name="PropertyExample" default="display-property">
<!-- Property Definition -->
<property name="project.name" value="MyProject"/>
<!-- Task Using Property -->
<target name="display-property">
<echo message="Project name is ${project.name}"/>
</target>
</project>
এখানে:
project.name
প্রপার্টি ডিফাইন করা হয়েছে এবং তার মান "MyProject"
।<echo>
টাস্কে এই প্রপার্টি ব্যবহার করা হয়েছে, যাতে আউটপুট হবে: Project name is MyProject
।কখনও কখনও, আপনি একটি প্রপার্টির জন্য ডিফল্ট মান দিতে চান, যা কোনো নির্দিষ্ট কেসে ব্যবহার হবে যদি সেটি আরেকটি প্রপার্টি দিয়ে ওভাররাইড না করা হয়।
<project name="DefaultPropertyExample" default="check-property">
<!-- Property Definition with Default Value -->
<property name="project.version" value="1.0.0"/>
<!-- Task Using Property -->
<target name="check-property">
<echo message="Project version is ${project.version}"/>
</target>
</project>
এখানে:
project.version
প্রপার্টি ডিফাইন করা হয়েছে এবং তার মান "1.0.0"
।Project version is 1.0.0
।একই প্রপার্টি পুনঃডিফাইন করলে এটি পূর্ববর্তী মানকে ওভাররাইড করে। এটি ব্যবহারকারীর কনফিগারেশন অনুযায়ী বিল্ড স্ক্রিপ্ট কাস্টমাইজ করতে উপকারী।
<project name="OverridePropertyExample" default="display-property">
<!-- Property Definition with Default Value -->
<property name="project.version" value="1.0.0"/>
<!-- Property Overriding -->
<property name="project.version" value="2.0.0"/>
<!-- Task Using Property -->
<target name="display-property">
<echo message="Project version is ${project.version}"/>
</target>
</project>
এখানে:
project.version
প্রপার্টি প্রথমে "1.0.0"
ছিল, কিন্তু পরে সেটি "2.0.0"
দিয়ে ওভাররাইড করা হয়েছে।Project version is 2.0.0
।অ্যান্ট আপনাকে একটি প্রপার্টি ফাইল থেকে প্রপার্টি লোড করার সুযোগ দেয়, যা ব্যবহারের জন্য আরও নমনীয়তা প্রদান করে। আপনি একটি .properties
ফাইল তৈরি করে সেটি অ্যান্ট বিল্ড স্ক্রিপ্টে লোড করতে পারেন।
<project name="PropertyFileExample" default="load-property">
<!-- Loading properties from a file -->
<property file="config.properties"/>
<!-- Task Using Loaded Property -->
<target name="load-property">
<echo message="Loaded project version is ${project.version}"/>
</target>
</project>
এখানে:
project.version
প্রপার্টি লোড করা হয়েছে, এবং এটি টাস্কে ব্যবহার করা হয়েছে।config.properties:
project.version=3.0.0
আউটপুট হবে: Loaded project version is 3.0.0
।
অ্যান্ট আপনাকে একটি প্রপার্টি চেক করার সুযোগও দেয় যে সেটি আগে থেকেই সেট করা হয়েছে কিনা।
<project name="CheckPropertyExample" default="check-property">
<!-- Checking if property is defined -->
<target name="check-property">
<echo message="Property exists: ${project.version}"/>
<condition property="project.version">
<isset property="project.version"/>
</condition>
</target>
</project>
এখানে:
<condition>
টাস্ক ব্যবহার করা হয়েছে এবং <isset>
ব্যবহার করে চেক করা হয়েছে যে project.version
প্রপার্টি আগে থেকেই ডিফাইন করা হয়েছে কিনা।<property>
টাস্ক অ্যান্ট বিল্ড সিস্টেমের একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান, যা প্রপার্টি ডিফাইন এবং ব্যবহারের জন্য ব্যবহৃত হয়। এটি আপনাকে বিল্ড প্রক্রিয়াকে আরও ডাইনামিক এবং কনফিগারেবল করতে সহায়তা করে। আপনি property files, default values, property overriding এবং condition checking এর মতো বিভিন্ন কৌশল ব্যবহার করে প্রপার্টি টাস্কগুলিকে দক্ষভাবে পরিচালনা করতে পারেন।
common.read_more